package com.mini.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mini.constant.AllocationLevel;
import com.mini.util.AllocationLevelConverter;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.Convert;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author zhangxiaobin
 * @title: BusinessTeacherInfo
 * @description: TODO
 * @date 2019/10/2715:53
 */
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BusinessTeacherInfo implements Serializable {

    @Id
    private Long teacherId;

    @ApiModelProperty(value = "运营老师名称")
    private String teacherName;

    @ApiModelProperty(value = "运营老师预加微信数量")
    private Integer addWechatNum;

    @ApiModelProperty(value = "当前加微信数量")
    private Integer currentWechatNum;

    @ApiModelProperty(value = "所属运营组")
    private Long groupId;

    @ApiModelProperty(value = "所属运营组名称")
    private String groupName;

    @ApiModelProperty(value = "排序")
    private Integer orders;

    @ApiModelProperty(value = "状态 0启用 1禁用")
    private Integer states;

    private Long createUser;

    private Long updateUser;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    @ApiModelProperty(value = "部门id")
    private Long deptId;

    private String deptName;

    @ApiModelProperty(value = "工作室id", required = true)
    private Long workRoomId;

    @ApiModelProperty(value = "工作室名称", required = true)
    private String workRoomName;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date changeDeptTime;

    @Transient
    @ApiModelProperty(value = "组织架构全称", required = true)
    private String deptFullName;

    @Transient
    @ApiModelProperty(value = "微信号列表", required = true)
    private List<BusinessTeacherWechatInfo> wechatInfos;

    @ApiModelProperty(value = "飞天登陆账号")
    private String teacherLoginName;

    @ApiModelProperty(value = "排班状态 0开启 1关闭", required = true)
    private Integer pbStates;

    @ApiModelProperty(value = "分配等级，从高到低 1(s),2(a),3(b),4(c)  ", required = true)
    @Convert(converter = AllocationLevelConverter.class)
    private AllocationLevel allocationLevel;

    private Long skuId;

    private String skuName;

    private Integer accountStatus;

}